/**
 * 日期格式化函数
 * @param date 日期对象或日期字符串(支持ISO格式、YYYY-MM-DD HH:mm:ss等)
 * @param format 日期格式，默认为 YYYY-MM-DD HH:mm:ss
 * @returns 格式化后的日期字符串或空字符串(输入无效时)
 */
export const formatDate = (date: Date | string, format = 'YYYY-MM-DD HH:mm:ss') => {
  // 处理日期输入
  if (typeof date === 'string') {
    date = date.replace(/-/g, '/')
  }
  const inputDate = typeof date === 'string' ? new Date(date) : date

  // 验证日期有效性
  if (!(inputDate instanceof Date) || isNaN(inputDate.getTime())) {
    console.error('无效的日期输入:', date)
    return ''
  }

  // 获取年月日时分秒，通过 padStart 补 0
  const year = String(inputDate.getFullYear())
  const month = String(inputDate.getMonth() + 1).padStart(2, '0')
  const day = String(inputDate.getDate()).padStart(2, '0')
  const hours = String(inputDate.getHours()).padStart(2, '0')
  const minutes = String(inputDate.getMinutes()).padStart(2, '0')
  const seconds = String(inputDate.getSeconds()).padStart(2, '0')

  // 返回格式化后的结果
  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds)
}
